using System;
using System.Data;
using System.ComponentModel;
using System.Reflection;
using System.Collections.Generic;
using DataObject.Helpers;

namespace DataObject.Model
{
	[Serializable]
	public class StickyDTO : DTOBase
	{
        public StickyDTO()
        {
            StickyID = Helper.NewSeqGuid();
        }

		#region Property Description

		private string _description;

		/// <summary>
		///  Property Description
		/// <summary>
		public string Description
		{
			get
			{
				return _description;
			}

			set
			{
				if (_description != value)
				{
					this.OnDescriptionChanging(value);
					_description = value;
					this.OnDescriptionChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property StickyDate

		private DateTime _stickyDate;

		/// <summary>
		///  Property StickyDate
		/// <summary>
		public DateTime StickyDate
		{
			get
			{
				return _stickyDate;
			}

			set
			{
				if (_stickyDate != value)
				{
					this.OnStickyDateChanging(value);
					_stickyDate = value;
					this.OnStickyDateChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Property StickyID

		private Guid _stickyID;

		/// <summary>
		///  Property StickyID
		/// <summary>
		public Guid StickyID
		{
			get
			{
				return _stickyID;
			}

			set
			{
				if (_stickyID != value)
				{
					this.OnStickyIDChanging(value);
					_stickyID = value;
					this.OnStickyIDChanged();
					OnChanged();
				}
			}
		}

		#endregion

		#region Extensibility Method Declarations

		protected virtual void OnDescriptionChanging(string description) { }
		protected virtual void OnDescriptionChanged() { }
		protected virtual void OnStickyDateChanging(DateTime stickyDate) { }
		protected virtual void OnStickyDateChanged() { }
		protected virtual void OnStickyIDChanging(Guid stickyID) { }
		protected virtual void OnStickyIDChanged() { }

		#endregion

	}
}
